#ifndef __OUTPUT_H
#define __OUTPUT_H

#include <stdint.h>
#include "stm32f10x.h"

// 继电器状态定义
#define RELAY_STATE_OFF 0
#define RELAY_STATE_ON  1

// 继电器逻辑电平定义
#define RELAY_ACTIVE_HIGH 1   // 高电平有效
#define RELAY_ACTIVE_LOW  0   // 低电平有效

// 继电器通道结构体
typedef struct {
    GPIO_TypeDef* GPIOx;         // GPIO端口
    uint16_t      GPIO_Pin;      // GPIO引脚
    uint8_t       activeLevel;   // 有效电平 (RELAY_ACTIVE_HIGH 或 RELAY_ACTIVE_LOW)
} Relay_Channel_t;

// 继电器通道枚举定义
typedef enum {
    RELAY_ALARM_1 = 0,   // 报警继电器1
    RELAY_ALARM_2,       // 报警继电器2
    BATTERY_CHARGE,      // 电池充电控制

    RELAY_CHANNEL_COUNT   // 继电器通道总数（自动计算）
} Relay_Channel_Enum;

// 函数声明
void Relay_Init(void);
void Output_Control(uint8_t channel, uint8_t state);

// 外部声明继电器通道配置数组
extern Relay_Channel_t relayChannels[];

#endif
